package com.jxtc.enterprise.common.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.time.LocalDateTime;

@Getter
@Setter
@ToString
@TableName(value = "food")
public class Food {
    /**
     * uuid
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 菜品名称
     */
    private String name;
    /**
     * 菜品图片链接
     */
    private String image;
    /**
     * 菜品描述信息
     */
    private String description;
    /**
     * 菜品规格，并不是所有菜品都有规格，只针对有规格的菜品有意义；json 格式字符串
     */
    private String specification;
    /**
     * 店铺 ID
     */
    private String storeId;
    /**
     * 店铺名称
     */
    private String storeName;
    /**
     * 出售价，单位为分（每个菜品提供一个默认值，然后在菜单中对不同公司设置不同价格）
     */
    private Integer salePrice;
    /**
     * 商家合作价，单位为分（每个菜品提供一个默认值，然后在菜单中对不同公司设置不同价格）
     */
    private Integer storePrice;
    /**
     * 限购份数
     */
    private Integer limitCount;
    /**
     * 菜品在店铺内的分类名称
     */
    private String foodTypeName;
    /**
     * 菜品上架状态，1 表示上架（默认），2 表示下架
     */
    private Integer status;
    /**
     * 菜品在店铺中展示时的顺序，值从 1 开始，值越小，越靠前
     */
    private Integer sortFlag;
    /**
     * 是否为必选项，0 表示不是必选项（默认），1 表示是必选项
     */
    private Boolean required;
    /**
     * 软删除标记，1 表示已删除，0 表示未删除
     */
    private Boolean delFlag;
    /**
     * 创建时间，在创建时默认传值，不需要手动操作
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /**
     * 更新时间，在更新时默认传值，不需要手动操作
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 单位为元，格式为小数的 商品销售价格，数据库中存储的单位是分，返回给前端时，转换成 元
     * @return
     */
    public float getSalePriceInYuan() {
        return salePrice * 1.0F / 100;
    }

}
